﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using vudu.Logica.Clases;
using vudu.EnlaceDatos.SqlServer;

namespace vudu.PaginasWeb.G5Materia
{
    public partial class ModificarMateria : System.Web.UI.Page
    {
        private Materia materia;
        String error, error2;

        protected void Page_Load(object sender, EventArgs e)
        {
            //OBJETO SESSION 
            string miRol = (string)Session["rol"];
            if (miRol != "Escuela")
                Response.Redirect("../G3AccesoSistema/InicioSistema.aspx");
            Escuela esc = (Escuela)Session["Usuario"];
            nombreEscuela.Text = "Escuela: " + esc.NombreEscuela;

            error = "Operacion Fallida: ";
            materia = (Materia)Session["ModificarMateria"];
            if (!IsPostBack)
            {
                try
                {
                    //materia = (Materia)Session["ModificarMateria"];
                    TextNombre.Text = materia.Nombre;
                    TextTeo.Text = materia.HorasTeoria.ToString();
                    TextPrac.Text = materia.HorasPractica.ToString();
                    TextBox1.Text = materia.Descripcion;
                }
                catch (Exception)
                {
                    Label6.Text = error + "No se logro recolectar la informacion";
                    Label6.Visible = true;
                }
            }

        }

        protected void Button3_Click(object sender, EventArgs e)
        {
            bool seModifica = true;
            List<String[]> modificaciones = new List<String[]>();

            //Validacion de Nombre

            if (TextNombre.Text.Equals(materia.Nombre) == false)
            {
                String _nombre = TextNombre.Text;
                String[] nombre = new String[3];
                nombre[1] = "Nombre";
                if (_nombre.Length == 0)
                {
                    Label14.Text = "Debe llenar este campo";
                    Label14.Visible = true;
                    seModifica = false;
                }
                else
                {
                    nombre[2] = _nombre;
                    modificaciones.Add(nombre);
                }
            }
            //Validacion de Practica

            if (TextPrac.Text.Equals(materia.HorasPractica.ToString()) == false)
            {
                try
                {
                    int _practica = Int32.Parse(TextPrac.Text);
                    String[] practica = new String[3];
                    practica[1] = "Practica";
                    practica[2] = _practica.ToString();
                    modificaciones.Add(practica);
                }
                catch (Exception)
                {
                    errorPra.Text = "El valor no es numerico";
                    errorPra.Visible = true;
                    seModifica = false;

                }
            }
            //Validacion de Teoria

            if (TextTeo.Text.Equals(materia.HorasTeoria.ToString()) == false)
            {
                try
                {
                    int _teoria = Int32.Parse(TextTeo.Text);
                    String[] teoria = new String[3];
                    teoria[1] = "Teoria";
                    teoria[2] = _teoria.ToString();
                    modificaciones.Add(teoria);
                }
                catch (Exception)
                {
                    errorTeo.Text = "El valor no es numerico";
                    errorTeo.Visible = true;
                    seModifica = false;

                }
            }
            //Validacion de descripcion

            if (TextBox1.Text.Equals(materia.Descripcion) == false)
            {
                String _desc = TextBox1.Text;
                String[] desc = new String[3];
                desc[1] = "Descripcion";
                if (_desc.Length == 0)
                {
                    errorDes.Text = "Debe llenar este campo";
                    errorDes.Visible = true;
                    seModifica = false;
                }
                else
                {
                    desc[2] = _desc;
                    modificaciones.Add(desc);
                }
            }
            //Validacion Estatus

            if (TextEstado.Text.Equals(materia.Estatus) == false)
            {
                String _estatus = TextEstado.Text;
                String[] estatus = new String[3];
                estatus[1] = "Estatus";
                estatus[2] = _estatus;
                modificaciones.Add(estatus);
            }

            if (seModifica == true)
            {
                if (modificaciones.Count > 0)
                {
                    bool seModifico = new SqlServerMateria().ModificarMateria(modificaciones, materia);
                    if (seModifico == true)
                    {
                        Label6.Text = "Se han realizado las modificaciones con exito";
                        Label6.ForeColor = System.Drawing.Color.Green;
                        //Label6.CssClass = "transaccionExitosa";
                        Label6.Visible = true;
                    }
                    else
                    {
                        Label6.Text = error + "No se ha logrado ralizar la modificacion";
                        Label6.ForeColor = System.Drawing.Color.Red;
                        //Label6.CssClass = "transaccionFallida";
                        Label6.Visible = true;
                    }
                }
                else
                {
                    Label6.Text = error + "No se ha modificado ningun campo";
                    Label6.ForeColor = System.Drawing.Color.Red;
                    //Label6.CssClass = "transaccionFallida";
                    Label6.Visible = true;
                }
            }
            else
            {
                Label6.Text = error + "Existen errores en la informacion";
                Label6.ForeColor = System.Drawing.Color.Red;
                //Label6.CssClass = "transaccionFallida";
                Label6.Visible = true;
            }

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            Response.Redirect("SeleccionarMateriaModificar.aspx");
        }
    }
}